package com.ly.heart.domain;

import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ly.common.core.domain.BaseVo;
import lombok.Data;
import com.ly.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 金蝶-财务-应收票据结算单对象 erp_king_finance_receipt_settlement_bill_info
 *
 * @author wutao
 */
@TableName ( "erp_king_finance_receipt_settlement_bill_info" )
@ApiModel ( value = "erp_king_finance_receipt_settlement_bill_info对象", description = "金蝶-财务-应收票据结算单" )
@Data
public class KingFinanceReceiptSettlementBillEntity extends BaseVo {
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId ( value = "id", type = IdType.INPUT )
    private String id;

    @ApiModelProperty ( "原单据Id" )
    @TableField ( "receipt_bill_id" )
    @Excel ( name = "原单据Id" )
    private String receiptBillId;

    @ApiModelProperty ( "生成类型：\n" +
            "1、背书\n" +
            "2、背书退回\n" +
            "3、贴现\n" +
            "4、收款\n" +
            "5、退票\n" +
            "6、质押\n" +
            "7、撤押" )
    @TableField ( "receipt_bill_type" )
    private Integer receiptBillType;

    /**
     * 单据类型,dialog走接口
     */
    @ApiModelProperty ( "登录公司" )
    @TableField ( "dept_id" )
    @Excel ( name = "登录公司" )
    private String deptId;

    /**
     * 单据类型,dialog走接口
     */
    @ApiModelProperty ( "单据类型编码" )
    @TableField ( "doc_type_code" )
    @Excel ( name = "单据类型,dialog走接口" )
    private String docTypeCode;

    /**
     * 业务时间
     */
    @ApiModelProperty ( "业务时间" )
    @TableField ( "biz_time" )
    @JsonFormat ( pattern = "yyyy-MM-dd" )
    @Excel ( name = "业务时间", width = 30, dateFormat = "yyyy-MM-dd" )
    private Date bizTime;

    /**
     * 往来单位类型,select走字典
     */
    @ApiModelProperty ( "往来单位类型,select走字典" )
    @TableField ( "transaction_company_type" )
    @Excel ( name = "往来单位类型,select走字典" )
    private String transactionCompanyType;

    /**
     * 收款组织,当前登录公司
     */
    @ApiModelProperty ( "收款组织,当前登录公司" )
    @TableField ( "receipt_dept_id" )
    @Excel ( name = "收款组织,当前登录公司" )
    private String receiptDeptId;


    @ApiModelProperty ( "结算组织" )
    @TableField ( "settlement_dept_id" )
    private String settlementDeptId;
    /**
     * 票据类型,取应收票据该值
     */
    @ApiModelProperty ( "票据类型,取应收票据该值" )
    @TableField ( "bill_type" )
    @Excel ( name = "票据类型,取应收票据该值" )
    private String billType;

    /**
     * 往来单位,dialog走接口
     */
    @ApiModelProperty ( "往来单位,dialog走接口" )
    @TableField ( "transaction_company_id" )
    @Excel ( name = "往来单位,dialog走接口" )
    private String transactionCompanyId;

    /**
     * 票据流水号,取应收票据该值
     */
    @ApiModelProperty ( "票据流水号,取应收票据该值" )
    @TableField ( "bill_serial_number" )
    @Excel ( name = "票据流水号,取应收票据该值" )
    private String billSerialNumber;

    /**
     * 币别
     */
    @ApiModelProperty ( "币别" )
    @TableField ( "king_base_currency_id" )
    @Excel ( name = "币别" )
    private String kingBaseCurrencyId;

    /**
     * 单据编号
     */
    @ApiModelProperty ( "单据编号" )
    @TableField ( "doc_no" )
    @Excel ( name = "单据编号" )
    private String docNo;

    /**
     * 票据号
     */
    @ApiModelProperty ( "票据号" )
    @TableField ( "bill_no" )
    @Excel ( name = "票据号" )
    private String billNo;

    /**
     * 数据状态;1:创建;2:审核中;3:已审核
     */
    @ApiModelProperty ( "数据状态;1:创建;2:审核中;3:已审核" )
    @TableField ( "data_status" )
    @Excel ( name = "数据状态;1:创建;2:审核中;3:已审核" )
    private Integer dataStatus;

    /**
     * 贴现部分-贴现日期
     */
    @ApiModelProperty ( "贴现部分-贴现日期" )
    @TableField ( "discount_date" )
    @JsonFormat ( pattern = "yyyy-MM-dd" )
    @Excel ( name = "贴现部分-贴现日期", width = 30, dateFormat = "yyyy-MM-dd" )
    private Date discountDate;

    /**
     * 贴现部分-贴息调整天数
     */
    @ApiModelProperty ( "贴现部分-贴息调整天数" )
    @TableField ( "discount_day_number" )
    @Excel ( name = "贴现部分-贴息调整天数" )
    private Integer discountDayNumber;

    /**
     * 贴现/收款部分-收款银行，走接口
     */
    @ApiModelProperty ( "贴现/收款部分-收款银行，走接口" )
    @TableField ( "receipt_bank_id" )
    @Excel ( name = "贴现/收款部分-收款银行，走接口" )
    private String receiptBankId;

    /**
     * 贴现/收款部分-收款银行账号
     */
    @ApiModelProperty ( "贴现/收款部分-收款银行账号" )
    @TableField ( "receipt_bank_account" )
    @Excel ( name = "贴现/收款部分-收款银行账号" )
    private String receiptBankAccount;

    /**
     * 贴现部分-贴现银行，文本
     */
    @ApiModelProperty ( "贴现部分-贴现银行，文本" )
    @TableField ( "discount_bank" )
    @Excel ( name = "贴现部分-贴现银行，文本" )
    private String discountBank;

    /**
     * 贴现部分-贴现率
     */
    @ApiModelProperty ( "贴现部分-贴现率" )
    @TableField ( "discount_rate" )
    @Excel ( name = "贴现部分-贴现率" )
    private String discountRate;

    /**
     * 贴现部分-贴现金额=实收金额(取源应收票据的到期金额)+贴现息
     */
    @ApiModelProperty ( "贴现部分-贴现金额=实收金额(取源应收票据的到期金额)+贴现息" )
    @TableField ( "discount_amount" )
    @Excel ( name = "贴现部分-贴现金额=实收金额(取源应收票据的到期金额)+贴现息" )
    private String discountAmount;

    /**
     * 贴现部分-贴现息
     */
    @ApiModelProperty ( "贴现部分-贴现息" )
    @TableField ( "discount_interest" )
    @Excel ( name = "贴现部分-贴现息" )
    private String discountInterest;

    /**
     * 贴现部分-费用，文本
     */
    @ApiModelProperty ( "贴现部分-费用，文本" )
    @TableField ( "discount_fee" )
    @Excel ( name = "贴现部分-费用，文本" )
    private String discountFee;

    /**
     * 贴现部分-税额，文本
     */
    @ApiModelProperty ( "贴现部分-税额，文本" )
    @TableField ( "discount_tax" )
    @Excel ( name = "贴现部分-税额，文本" )
    private String discountTax;

    /**
     * 贴现部分-结算号，文本
     */
    @ApiModelProperty ( "贴现部分-结算号，文本" )
    @TableField ( "discount_settlement_number" )
    @Excel ( name = "贴现部分-结算号，文本" )
    private String discountSettlementNumber;

    /**
     * 收款-收款日期
     */
    @ApiModelProperty ( "收款-收款日期" )
    @TableField ( "receipt_date" )
    @JsonFormat ( pattern = "yyyy-MM-dd" )
    @Excel ( name = "收款-收款日期", width = 30, dateFormat = "yyyy-MM-dd" )
    private Date receiptDate;

    /**
     * 收款-到期收款金额,文本
     */
    @ApiModelProperty ( "收款-到期收款金额/退票金额/质押金额" )
    @TableField ( "receipt_amount" )
    @Excel ( name = "收款-到期收款金额,文本" )
    private String receiptAmount;

    /**
     * 收款-利息，文本
     */
    @ApiModelProperty ( "收款-利息，文本" )
    @TableField ( "receipt_interest" )
    @Excel ( name = "收款-利息，文本" )
    private String receiptInterest;

    /**
     * 收款-费用，文本
     */
    @ApiModelProperty ( "收款-费用，文本" )
    @TableField ( "receipt_fee" )
    @Excel ( name = "收款-费用，文本" )
    private String receiptFee;

    /**
     * 退票-退票日期
     */
    @ApiModelProperty ( "退票-退票日期" )
    @TableField ( "refund_time" )
    @JsonFormat ( pattern = "yyyy-MM-dd" )
    @Excel ( name = "退票-退票日期", width = 30, dateFormat = "yyyy-MM-dd" )
    private Date refundTime;

    /**
     * 被背书人Id
     */
    @ApiModelProperty ( "背书-被背书人/被背书人，根据背书单位类型决定选择供应商还是客户还是其他往来单位" )
    @TableField ( "endorsed_dept_id" )
    @Excel ( name = "被背书人" )
    private String endorsedDeptId;

    /**
     * 被背书人Id
     */
    @ApiModelProperty ( "背书-背书金额" )
    @TableField ( "recite_amount" )
    @Excel ( name = "背书金额" )
    private String reciteAmount;

    /**
     * 背书日期
     */
    @ApiModelProperty ( "背书-背书日期" )
    @TableField ( "recite_date" )
    @JsonFormat ( pattern = "yyyy-MM-dd" )
    @Excel ( name = "背书日期" )
    private Date reciteDate;

    /**
     * 被背书单位类型
     */
    @ApiModelProperty ( "背书-被背书单位类型" )
    @TableField ( "endorsed_dept_type" )
    @Excel ( name = "被背书单位类型" )
    private String endorsedDeptType;

    /**
     * 背书退回-日期
     */
    @ApiModelProperty ( "背书退回-日期" )
    @TableField ( "recite_refund_date" )
    @JsonFormat ( pattern = "yyyy-MM-dd" )
    @Excel ( name = "背书退回日期" )
    private Date reciteRefundDate;

    /**
     * 质押日期
     */
    @ApiModelProperty ( "质押日期" )
    @TableField ( "pledge_time" )
    @JsonFormat ( pattern = "yyyy-MM-dd" )
    @Excel ( name = "质押日期" )
    private Date pledgeTime;

    /**
     * 质押银行
     */
    @ApiModelProperty ( "质押银行，走接口" )
    @TableField ( "pledge_bank_id" )
    @Excel ( name = "质押银行" )
    private String pledgeBankId;

    @ApiModelProperty ( "撤押日期" )
    @TableField ( "un_pledge_time" )
    @JsonFormat ( pattern = "yyyy-MM-dd" )
    @Excel ( name = "撤押日期" )
    private Date unPledgeTime;

    @ApiModelProperty ( "是否撤押，1：是；2：否" )
    @TableField ( "is_un_pledge" )
    @Excel ( name = "是否撤押" )
    private Integer isUnPledge;

    @TableField ( "remarks" )
    private String remarks;

    @ApiModelProperty ( "创建人" )
    @TableField ( "create_by" )
    private String createBy;

    @ApiModelProperty ( "创建时间" )
    @TableField ( "create_time" )
    private Date createTime;

    @ApiModelProperty ( "更新人" )
    @TableField ( "update_by" )
    private String updateBy;

    @ApiModelProperty ( "更新时间" )
    @TableField ( "update_time" )
    private Date updateTime;

    /**
     * $column.columnComment
     */
    @ApiModelProperty ( "原单据Id" )
    @TableField ( "is_used" )
    @Excel ( name = "原单据Id" )
    private Integer isUsed;

    @ApiModelProperty ( "币别" )
    @TableField ( exist = false )
    private String kingBaseCurrencyName;

    @ApiModelProperty ( "往来单位" )
    @TableField ( exist = false )
    private String transactionCompanyName;

    @ApiModelProperty ( "背书单位/背书人" )
    @TableField ( exist = false )
    private String endorsedDeptName;

    @ApiModelProperty ( "单据类型名称" )
    @TableField ( exist = false )
    private String docTypeName;

    @ApiModelProperty ( "票据类型名称" )
    @TableField ( exist = false )
    private String billTypeName;

    @ApiModelProperty ( "应收票据包号" )
    @TableField ( exist = false )
    private String billPackNo;

    @ApiModelProperty ( "应收票据票面金额" )
    @TableField ( exist = false )
    private String faceAmount;

    @ApiModelProperty ( "收款组织" )
    @TableField ( exist = false )
    private String receiptDeptName;

    @ApiModelProperty ( "结算组织" )
    @TableField ( exist = false )
    private String settlementDeptName;

    @ApiModelProperty ( "出票人" )
    @TableField ( exist = false )
    private String ticketingUser;

    @ApiModelProperty ( "承兑人" )
    @TableField ( exist = false )
    private String acceptanceUser;

    @ApiModelProperty ( "退票页面的票据类型，实际上是用于判断生成对应的单据，无实际意义" )
    @TableField ( exist = false )
    private String generateType;

    @ApiModelProperty ( "背书明细" )
    @TableField ( exist = false )
    private List<KingFinanceReceiptBillReciteEntity> kingFinanceReceiptBillReciteEntityList;

}
